package com.louzhu.gulimall.search.vo;

import com.louzhu.common.to.es.SkuEsModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 返回页面的检索结果封装
 */
@Data
public class SearchResult {

    /*
    1、从ES中查询到的商品数据
     */
    private List<SkuEsModel> products;
    /*
    2、分页信息
     */
    private Integer pageNum; // 当前页码
    private Long total; // 总记录数
    private Integer totalPages; //总页码
    private List<Integer> pageNavs; // 所有的导航页码
    /*
    3、品牌和分类信息是所有查询结果中都要有的信息
       每次查询都要在页面显示
     */
    private List<BrandVo> brands; // 所有查询结果的品牌列表
    private List<CatalogVo> catalogs; // 所有查询结果的分类列表
    /*
    4、查询结果中的所有属性信息
     */
    private List<AttrVo> attrs;
    /*
    5、面包屑导航
     */
    private List<NavVo> navs;


    /**
     * 面包屑导航
     */
    @Data
    public static class NavVo{
        private String navName;
        private String navValue;
        private String link;
    }



    /**
     * 品牌信息
     */
    @Data
    public static class BrandVo{
        private Long brandId;
        private String brandName;
        private String brandImg;
    }
    /*
    属性信息
     */
    @Data
    public static class AttrVo{
        private Long attrId;
        private String attrName;
        private List<String> attrValue;
    }
    /*
    分类信息
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class CatalogVo{
        private Long catalogId;
        private String catalogName;
    }

}
